package com.example.springcode.beans.factory;

import com.example.springcode.beans.BeansException;
import com.example.springcode.beans.factory.BeanFactory;

/**
 * @Author: chenxiuxiang
 * @Date: 2024-03-07 18:30
 * @Description: Bean工厂前置处理器
 * 在所有的 BeanDefinition 加载完成后，实例化 Bean 对象之前，提供修改 BeanDefinition 属性的机制
 * 执行时机：IOC容器加载BeanDefinition后，实例化Bean之前，只执行一次
 */
public interface BeanFactoryPostProcessor {
    /**
     * 执行处理逻辑
     * @param beanFactory Bean工厂
     * @throws BeansException Bean异常
     */
    void postProcessBeanFactory(BeanFactory beanFactory) throws BeansException;
}
